import {NgModule} from '@angular/core';
import {CommonModule, DatePipe} from '@angular/common';
import {DemoNgZorroAntdModule} from '../../NG-ZORRO/ng-zorro-antd.module';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {NzIconModule} from 'ng-zorro-antd/icon';
import {AlertFill} from '@ant-design/icons-angular/icons';
import {sharedModule} from '../../sharedModule/shared.module';

import {PromotionShareRoutingModule} from './promotion-share-routing.module';
import {GameManageComponent} from './game-manage/game-manage.component';

import {
  SharingStatusPipe,
  InstallStatusPipe,
  UserTypeStatusPipe,
  PromotionStatusPipe,
  DivideDeveloperStatusPipe,
  DivideAppStatusPipe,
  DivideRechargeStatusPipe,
  DividePayTypePipe,
  DivideConsumeStatusPipe,
  GameHotTypePipe,
  GameActNoticeStatusPipe,
  GameBannerStatusPipe
} from './status.pipe';

const pipeArrs = [
  SharingStatusPipe,
  InstallStatusPipe,
  UserTypeStatusPipe,
  PromotionStatusPipe,
  DivideDeveloperStatusPipe,
  DivideAppStatusPipe,
  DivideRechargeStatusPipe,
  DividePayTypePipe,
  DivideConsumeStatusPipe,
  GameHotTypePipe,
  GameActNoticeStatusPipe,
  GameBannerStatusPipe
];

/**
 * 导入 EditorModule
 */
 import { EditorModule } from '@tinymce/tinymce-angular';

import { IconDefinition } from '@ant-design/icons-angular';
import { DivideDeveloperListComponent } from './divide-developer-list/divide-developer-list.component';
import { DivideGameEditComponent } from './divide-game-edit/divide-game-edit.component';
import { DivideGameDetailsComponent } from './divide-game-details/divide-game-details.component';
import { DivideDeveloperDetailsComponent } from './divide-developer-details/divide-developer-details.component';
import { PromotionIncomeRechangeComponent } from './income-manage/promotion-income-rechange/promotion-income-rechange.component';
import { PromotionIncomeConsumeComponent } from './income-manage/promotion-income-consume/promotion-income-consume.component';
import {UserManageComponent} from './user/user-manage/user-manage.component';
import { LotteryComponent } from './operate/lottery/lottery.component';
import { PrizeRecordsComponent } from './operate/prize-records/prize-records.component';
import { MallComponent } from './operate/mall/mall.component';
import { ExchangeRecordsComponent } from './operate/exchange-records/exchange-records.component';
import { DivideClassifyListComponent } from './divide-classify-list/divide-classify-list.component';
import { GameOperateHotshComponent } from './game-operate-manage/game-operate-hotsh/game-operate-hotsh.component';
import { GameOperateNoticeListComponent } from './game-operate-manage/game-operate-notice-list/game-operate-notice-list.component';
import { GameOperateNoticeEditComponent } from './game-operate-manage/game-operate-notice-edit/game-operate-notice-edit.component';
import { GameOperateWelfareComponent } from './game-operate-manage/game-operate-welfare/game-operate-welfare.component';
import { EditGoodsComponent } from './operate/mall/edit-goods/edit-goods.component';
import { GameOperateBannerComponent } from './game-operate-manage/game-operate-banner/game-operate-banner.component';
import { ActivityConfigComponent } from './operate/activity-config/activity-config.component';
import { GameNewRecommendComponent } from './game-new-recommend/game-new-recommend.component';
import { GameSelectAppComponent } from './components/game-select-app/game-select-app.component';

const icons: IconDefinition[] = [AlertFill];

@NgModule({
  declarations: [
    ...pipeArrs,
    GameManageComponent,
    DivideDeveloperListComponent,
    DivideGameEditComponent,
    DivideGameDetailsComponent,
    DivideDeveloperDetailsComponent,
    PromotionIncomeRechangeComponent,
    PromotionIncomeConsumeComponent,
    DivideDeveloperDetailsComponent,
    UserManageComponent,
    LotteryComponent,
    PrizeRecordsComponent,
    MallComponent,
    ExchangeRecordsComponent,
    DivideClassifyListComponent,
    GameOperateHotshComponent,
    GameOperateNoticeListComponent,
    GameOperateNoticeEditComponent,
    GameOperateWelfareComponent,
    EditGoodsComponent,
    GameOperateBannerComponent,
    ActivityConfigComponent,
    GameNewRecommendComponent,
    GameSelectAppComponent
  ],
  imports: [
    CommonModule,
    DemoNgZorroAntdModule,
    FormsModule,
    sharedModule,
    ReactiveFormsModule,
    EditorModule,
    NzIconModule.forRoot(icons),
    PromotionShareRoutingModule
  ],
  providers: [DatePipe]
})
export class PromotionShareModule {
}
